Search in application launcher

ABSTRACT

A system and machine-implemented method for facilitating an application launcher providing direct access to one or more items, the method including identifying one or more items maintained at one or more sources accessible by the user at the computing device meeting search criteria specified by a user, determining an application associated with each of the one or more items facilitating access to the item, generating an instance of each of the one or more items facilitating direct user interaction with the item, where the user is able to interact with the item directly from the instance of the item and providing the instance of each of the one or more items for display to the user at the computing device in response to the request.

BACKGROUND

As the services and data available to a user at a user computer deviceincrease (e.g., through third party applications and/or online services,as well as data maintained locally and/or remotely for localapplications), it is important to provide a user with a seamlessexperience in identifying and accessing such services and data. Forexample, various services are provided on an on demand basis, where theuser is able to choose a specific application when needed, and todownload the application. However, to do this, the user is usuallyrequired to first determine the specific application needed to performthe service, and to then access and download the application (e.g.,through a web browser or local application installer at the computingdevice). Similarly, with respect to data, maintained by an applicationrunning on or accessible through the user computing device, the user isrequired to first determine the specific application maintaining thedata and then access the application to retrieve that data.

SUMMARY

The disclosed subject matter relates to a machine-implemented method forfacilitating an application launcher providing direct access to one ormore items, the method comprising receiving an indication of searchrequest from a user at a computing device, the search request includingone or more search criteria. The method further comprising identifyingone or more items maintained at one or more sources accessible by theuser at the computing device meeting the search criteria. The methodfurther comprising determining an application associated with each ofthe one or more items, wherein an application is associated with an itemwhen the application facilitates access to the item. The method furthercomprising generating an instance of each of the one or more items, theinstance of the item facilitating direct user interaction with the item,wherein the user is able to interact with the item directly from theinstance of the item and providing the instance of each of the one ormore items for display to the user at the computing device in responseto the request.

The disclosed subject matter also relates to a system for facilitatingan application launcher providing direct access to one or more items,the system comprising one or more processors and a machine-readablemedium comprising instructions stored therein, which when executed bythe processors, cause the processors to perform operations comprisingreceiving one or more search criteria provided by a user at a computingdevice. The operations further comprising identifying one or more itemsmaintained at one or more sources accessible by the user at thecomputing device meeting the one or more search criteria. The operationsfurther comprising generating an instance of each of the one or moreitems, the instance of the item facilitating direct user interactionwith the item and providing the instance of each of the one or moreitems for display to the user in response to the request, wherein theuser is able to interact with the item directly from the instance of theitem being displayed without being redirected to the applicationassociated with the item.

The disclosed subject matter also relates to a machine-readable mediumcomprising instructions stored therein, which when executed by amachine, cause the machine to perform operations comprising receivingone or more search criteria provided by a user at a computing device.The operations further comprising identifying one or more itemsaccessible through one or more applications accessible by the user atthe computing device meeting the one or more search criteria. Theoperations further comprising identifying an application associated witheach of the one or more items. The operations further comprisinggenerating an instance of each of the one or more items, the instance ofthe item facilitating direct user interaction with the item andproviding the instance of each of the one or more items for display tothe user in response to the request, wherein the user is able tointeract with the item directly from the instance of the item beingdisplayed without being redirected to the application associated withthe item.

It is understood that other configurations of the subject technologywill become readily apparent to those skilled in the art from thefollowing detailed description, wherein various configurations of thesubject technology are shown and described by way of illustration. Aswill be realized, the subject technology is capable of other anddifferent configurations and its several details are capable ofmodification in various other respects, all without departing from thescope of the subject technology. Accordingly, the drawings and detaileddescription are to be regarded as illustrative in nature and not asrestrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

Certain features of the subject technology are set forth in the appendedclaims. However, for purpose of explanation, several embodiments of thesubject technology are set forth in the following figures.

FIG. 1 illustrates an example client-server network environment, whichprovides for facilitating an application launcher providing a user withseamless access to one or more items.

FIG. 2 illustrates a flow diagram of an example process for facilitatingan application launcher providing a user with access to one or moreitems.

FIG. 3 illustrates an example graphical user interface including anapplication launcher window displaying one or more items to a user inresponse to a search query entered by the user.

FIG. 4 conceptually illustrates an electronic system with which someimplementations of the subject technology are implemented.

DETAILED DESCRIPTION

The detailed description set forth below is intended as a description ofvarious configurations of the subject technology and is not intended torepresent the only configurations in which the subject technology may bepracticed. The appended drawings are incorporated herein and constitutea part of the detailed description. The detailed description includesspecific details for the purpose of providing a thorough understandingof the subject technology. However, it will be clear and apparent tothose skilled in the art that the subject technology is not limited tothe specific details set forth herein and may be practiced without thesespecific details. In some instances, well-known structures andcomponents are shown in block diagram form in order to avoid obscuringthe concepts of the subject technology.

The subject disclosure provides a system and method for centralizingaccess to applications, services and/or data, hereinafter generallyreferred to as an “item”, available to the user across variousapplications and services (e.g., local or web-based applications at aclient device), hereinafter generally referred to as an “application”,and providing the user with seamless interaction with such items and/orapplications at a central location. The user is able to search at acentral application launcher for various items (e.g., using key terms),the application launcher searches (e.g., through a search engine) acrossall local and web-based applications at the user client device andprovides the user with items relating to the search criteria. Inaddition, the search results are provided in a form that is directlyaccessible by the user at the application launcher (e.g., without theneed to perform an additional step of launching the applicationproviding the data and/or accessing and/or downloading the applicationthrough the application store or web browser providing the application).

The items provided to the user may include files, web pages, entitiessuch as people, rooms, locations and/or applications (e.g.,client/web-based third party applications). Once the user enters searchcriteria, the system searches across all available resources to providethe user with items meeting the criteria and available to the user. Whenan item is determined to match the user search criteria, the item isaccessed automatically, and retrieved from the appropriate application.In one example, where the search results includes an entity such aspeople, rooms and/or locations, the user may be provided with the dataat the application launcher without the need to access the applicationmaintaining the data. Furthermore, a link to the appropriateapplication(s) maintaining and/or providing access to the item may beprovided (e.g., embedded in the item or through a mechanism displayedalong with the item), enabling the user to launch the application(s)directly from the application launcher in order perform additionalfunctions with respect to the item.

Where the search results include an application (e.g., a third partyapplication) the application is accessed and made available forlaunching directly at the application launcher. For example, where theapplication is determined to not yet have been installed at the userclient device and thus accessible by the user, the application may beinstalled and provided to the user for launching. In one example, theuser may be prompted to choose whether to download and install theapplication. In some implementations, the application may not beinstalled, and a link to download/install the application may beprovided for downloading and/or installing the application. In oneexample, the choice of whether to automatically download and/or installan application, when such application is not yet installed at the clientdevice may depend upon various criteria including the extent to whichthe application matches the search criteria, and/or system or userpreferences. Thus, the user does not need to take extra steps to accessthe application for downloading and/or installing the application.

Similarly, where the item is a web page within a web browser, a link isprovided (e.g., embedded within the item or a selectable mechanism) toautomatically launch the browser and open the web page, providing theuser with seamless access to the item directly from the applicationlauncher and without requiring further interaction from the user (e.g.,in accessing the browser and entering the URL for the web page).

FIG. 1 illustrates an example client-server network environment, whichprovides for facilitating an application launcher providing a user withseamless access to one or more items. A network environment 100 includesa number of electronic devices 102, 104, 106 communicably connected to aserver 110 and remote servers 120 by a network 108. Network 108 can be apublic communication network (e.g., the Internet, cellular data network,dialup modems over a telephone network) or a private communicationsnetwork (e.g., private LAN, leased lines). Further, network 108 caninclude, but is not limited to, any one or more of the following networktopologies, including a bus network, a star network, a ring network, amesh network, a star-bus network, a tree or hierarchical network, andthe like.

In some example implementations, electronic devices 102, 104, 106 can becomputing devices such as laptop or desktop computers, smartphones,PDAs, portable media players, tablet computers, or other appropriatecomputing devices. In the example of FIG. 1, electronic device 102 isdepicted as a smartphone, electronic device 104 is depicted as a desktopcomputer and electronic device 106 is depicted as a PDA.

In some implementations, server 110 includes a processing device 112 anda data store 114. Processing device 112 executes computer instructionsstored in data store 114, for example, to facilitate an applicationlauncher providing a user interacting with electronic devices 102, 104,106, with access to one or more items in response to a search request.Server 110 may further be in communication with remote servers 120either through the network 108 or through another network orcommunication means.

According to some aspects, remote servers 120 can be any system ordevice having a processor, a memory and communications capability forhosting various applications and/or items. Remote servers 120 may befurther capable of maintaining data, applications and/or other items orservices.

In some example aspects, server 110 and/or one or more remote servers120 can be a single computing device such as a computer server. In otherimplementations, server 110 and/or one or more remote servers 120 canrepresent more than one computing device working together to perform theactions of a server computer (e.g., cloud computing). Server 110 and/orone or more remote servers 120 may be coupled with various remotedatabases or storage services. While server 110 and the one or moreremote servers 120 are displayed as being remote from one another, itshould be understood that the functions performed by these servers maybe performed within a single server, or across multiple servers.

Communications between the client devices 102, 104, 106, server 110and/or one or more remote servers 120 may be facilitated through theHTTP communication protocol. Other communication protocols may also befacilitated including for example, XMPP communication, for some or allcommunications between the client devices 102, 104, 106, server 110 andone or more remote servers 120 (e.g., through network 108).

Users may interact with the system and data, application and services,hosted by server 110 and/or one or more remote servers 120, through aclient application installed at the electronic devices 102, 104, 106.Alternatively, the user may interact with the system and the one or moreapplications and data through a web based browser application at theelectronic devices 102, 104, 106. Communication between client devices102, 104, 106 and the system, and/or one or more social networkingservices, may be facilitated through a network (e.g., network 108).

The network 108 can include, for example, any one or more of a personalarea network (PAN), a local area network (LAN), a campus area network(CAN), a metropolitan area network (MAN), a wide area network (WAN), abroadband network (BBN), the Internet, and the like. Further, thenetwork 108 can include, but is not limited to, any one or more of thefollowing network topologies, including a bus network, a star network, aring network, a mesh network, a star-bus network, tree or hierarchicalnetwork, and the like.

FIG. 2 illustrates a flow diagram of an example process 200 forfacilitating an application launcher providing a user with access to oneor more items. In step 201, an indication of a search request providedby a user is received. In one example, the user at a client device(e.g., electronic devices 102, 104 or 106) may access an applicationlauncher and enter search criteria, such as a term or phrase, to findone or more items (e.g., data, application or services at the clientdevice) meeting the search criteria.

In step 202, one or more items meeting the search criteria and availableto the user through sources (e.g., local or web-based applications orservices) are identified. In one example, one or more applications orservices (e.g., local applications or browser) are identified havingaccess to data, services and applications that may be made available tothe user. The system then accesses each of these identified applicationsor services and searches for items meeting the search criteria. In oneexample, the search is performed using a central search engine havingaccess to the various sources (e.g., applications and servicesaccessible through the client device). In some implementations, one ormore of the applications and services may maintain a separate searchmechanism or algorithm (e.g., a separate search engine), and the searchmay be performed using such mechanisms or algorithms. In one example,the search and identification comprises finding items with titles,content, description or other identifier that matches the searchcriteria. A matching score may be assigned to each item compared to thesearch criteria (e.g., all items accessible through applications andservices at or accessible by the client device) and the highest rankingitems closely matching the searching criteria may be selected as theidentified one or more items.

In step 203, an application associated with each of the one or moreitems identified in step 202 is identified. As described above, whensearching for an item meeting the search criteria, all possibleapplications and services at the client device (or accessible throughthe client device at a user agent such as a browser) are searched. Oncean item is identified (e.g., selected based on the extent to which itmeets the search criteria), the application or service associated withthe item (e.g., the application or service through which the item isavailable) is identified and associated with the item.

In step 204, for each of the one or more items, the applicationassociated with the item is accessed to retrieve the item. In oneexample, the item may be access and retrieved for each of the one ormore items. In another example, the accessing of the items may not beperformed until a selection is received from a user to access the item.

In step 205, an instance of the item is generated, the instance of theitem being readily available to the user for interaction directly at theapplication launcher The item may include data (e.g., files, documents,information regarding an entity, people, locations, addresses, etc.),and/or an application or service. In some implementations, retrievingthe item may include determining if the item is readily and/or locallyavailable for interaction at the client device (e.g., if the item or theapplication through which the item is accessible is downloaded orinstalled locally at the client application). In one example, the itemmay include data, application or an entity locally stored at the clientdevice or readily accessible through an application locally stored atthe client device. In such instances the item is retrieved and providedfor user interaction. Where the item is not locally available (e.g., theitem or the application through which the item is accessible is notdownloaded and/or locally installed at the client device), in step 204,the item (data or application) or the application maintaining the itemmay be identified, provided for downloading and/or installing and/ordownloaded and/or installed automatically at the client device to allowthe user to seamlessly interact with the desired item.

In one example, whether or not the application or item not locallydownloaded or installed is automatically downloaded and/or installed maybe determined based on various criteria. In one example, the user may benotified when one or more applications or items matching the criteriaare not available (e.g., not installed or accessible through aninstalled application at the client device) and may choose whether todownload and/or install the application corresponding to the item orproviding access to the item. In some implementations, the determinationmay be based upon settings (e.g., system or user preferences orsettings) and/or one or more conditions that must be met (e.g., thematching score of an item, the time required to download and/or installthe item, the memory requirements of the item, cost of downloadingand/or installing of the item, etc.).

In step 206, the one or more instances of the one or more items areprovided for display to the user. Once the user views the providedinstances of the one or more items, the user may select to view any ofthe data (e.g., a useful snippet or all of the data) directly from theapplication launcher without needing to go to the application, the usermay further interact with applications meeting the criteria easilythrough the instance of the application or service provided for displayto the user. The displayed instances of the one or more items mayinclude data snippets, application icons, browser links or other similaritems that are viewable by the user and with which the user can easilyinteract directly at the application launcher. In one example, alongwith each item, an icon or other pointer to the application associatedwith the item is provided. The user can access the application to takefurther actions with respect to the item. In one example, one or moreapplications may be provided with regard to a single item. For example,where the data is an email address links to an email application,calendar application, address book or other applications which containthe email address or may provide some utility with respect to the emailaddress may be provided to the user.

FIG. 3 illustrates an example graphical user interface including anapplication launcher window 300 displaying one or more items to a userin response to a search query entered by the user. The applicationlauncher window 300 includes a search box 301, a “go” button 302, and anitem display area 303. A user may enter a search query (e.g., a searchterm or phrase) into search box 301 and may press the go button 302 tobegin the search. In another example, as soon as the user begins toenter a search query, the search may proceed and the user may not berequired to press the go button to proceed with the search. Once thesearch proceeds, a list of one or more items is retrieved (e.g., asdescribed above in FIG. 2) and displayed to the user within the itemdisplay area 303. The one or more items displayed within the displayarea 303 may include items meeting the search query and retrieved fromapplications available at the client device for interaction (e.g.,downloaded or installed and/or accessible through an application locallyinstalled such as a browser), or items meeting the search query andrelating to applications that are not yet locally available to the user(e.g., items that may be accessible through applications not yetdownloaded or installed, but accessible for download/installationthrough the browser or application store, or other similar application).

The item display area 300 of FIG. 3 includes two separate lists ofapplications. A first list 304 displays items 1-4 retrieved from theapplications accessible from the user client device (e.g., through alocally installed application). Each of the items 1-4 of the list 304may be displayed along with an application icon 304 a-d identifying theapplication associated with the item. A second list 305 displays items1-4 retrieved from the other applications (e.g., those not locallyaccessible). Each of the items 1-4 of the list 305 may be displayedalong with an application 305 a-d identifying the application associatedwith the item. In one example, the other applications may beautomatically downloaded and/or installed. In some implementations, thesystem may access the applications and may download the applicationssuch that they are ready for installation, and may allow the user toinstall the application directly from the application launcher window300. In other implementations, the system may simply provide a link tothe user, such that the user may directly download/install theapplication from the app launcher. In another example, a download and/orinstall link “D/I” 306 a-d is displayed along with each item 1-4 of thelist 305, to allow the user to directly download and/or install theapplication associated with the item and access the item directly fromthe app launcher once the application is downloaded and/or installed. Insome implementations, all items may be provided in a single list withinthe item display area 300.

Many of the above-described features and applications are implemented assoftware processes that are specified as a set of instructions recordedon a computer readable storage medium (also referred to as computerreadable medium). When these instructions are executed by one or moreprocessing unit(s) (e.g., one or more processors, cores of processors,or other processing units), they cause the processing unit(s) to performthe actions indicated in the instructions. Examples of computer readablemedia include, but are not limited to, CD-ROMs, flash drives, RAM chips,hard drives, EPROMs, etc. The computer readable media does not includecarrier waves and electronic signals passing wirelessly or over wiredconnections.

In this specification, the term “software” is meant to include firmwareresiding in read-only memory or applications stored in magnetic storage,which can be read into memory for processing by a processor. Also, insome implementations, multiple software aspects of the subjectdisclosure can be implemented as sub-parts of a larger program whileremaining distinct software aspects of the subject disclosure. In someimplementations, multiple software aspects can also be implemented asseparate programs. Finally, any combination of separate programs thattogether implement a software aspect described here is within the scopeof the subject disclosure. In some implementations, the softwareprograms, when installed to operate on one or more electronic systems,define one or more specific machine implementations that execute andperform the operations of the software programs.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand alone program or as a module, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more modules,sub programs, or portions of code). A computer program can be deployedto be executed on one computer or on multiple computers that are locatedat one site or distributed across multiple sites and interconnected by acommunication network.

FIG. 4 conceptually illustrates an electronic system with which someimplementations of the subject technology are implemented. Electronicsystem 400 can be a server, computer, phone, PDA, laptop, tabletcomputer, television with one or more processors embedded therein orcoupled thereto, or any other sort of electronic device. Such anelectronic system includes various types of computer readable media andinterfaces for various other types of computer readable media.Electronic system 400 includes a bus 408, processing unit(s) 412, asystem memory 404, a read-only memory (ROM) 410, a permanent storagedevice 402, an input device interface 414, an output device interface406, and a network interface 416.

Bus 408 collectively represents all system, peripheral, and chipsetbuses that communicatively connect the numerous internal devices ofelectronic system 400. For instance, bus 408 communicatively connectsprocessing unit(s) 412 with ROM 410, system memory 404, and permanentstorage device 402.

From these various memory units, processing unit(s) 412 retrievesinstructions to execute and data to process in order to execute theprocesses of the subject disclosure. The processing unit(s) can be asingle processor or a multi-core processor in different implementations.

ROM 410 stores static data and instructions that are needed byprocessing unit(s) 412 and other modules of the electronic system.Permanent storage device 402, on the other hand, is a read-and-writememory device. This device is a non-volatile memory unit that storesinstructions and data even when electronic system 400 is off. Someimplementations of the subject disclosure use a mass-storage device(such as a magnetic or optical disk and its corresponding disk drive) aspermanent storage device 402.

Other implementations use a removable storage device (such as a floppydisk, flash drive, and its corresponding disk drive) as permanentstorage device 402. Like permanent storage device 402, system memory 404is a read-and-write memory device. However, unlike storage device 402,system memory 404 is a volatile read-and-write memory, such a randomaccess memory. System memory 404 stores some of the instructions anddata that the processor needs at runtime. In some implementations, theprocesses of the subject disclosure are stored in system memory 404,permanent storage device 402, and/or ROM 410. For example, the variousmemory units include instructions for providing an application launcheraccording to various embodiments. From these various memory units,processing unit(s) 412 retrieves instructions to execute and data toprocess in order to execute the processes of some implementations.

Bus 408 also connects to input and output device interfaces 414 and 406.Input device interface 414 enables the user to communicate data andselect commands to the electronic system. Input devices used with inputdevice interface 414 include, for example, alphanumeric keyboards andpointing devices (also called “cursor control devices”). Output deviceinterfaces 406 enables, for example, the display of images generated bythe electronic system 400. Output devices used with output deviceinterface 406 include, for example, printers and display devices, suchas cathode ray tubes (CRT) or liquid crystal displays (LCD). Someimplementations include devices such as a touchscreen that functions asboth input and output devices.

Finally, as shown in FIG. 4, bus 408 also couples electronic system 400to a network (not shown) through a network interface 416. In thismanner, the computer can be a part of a network of computers (such as alocal area network (“LAN”), a wide area network (“WAN”), or an Intranet,or a network of networks, such as the Internet. Any or all components ofelectronic system 400 can be used in conjunction with the subjectdisclosure.

These functions described above can be implemented in digital electroniccircuitry, in computer software, firmware or hardware. The techniquescan be implemented using one or more computer program products.Programmable processors and computers can be included in or packaged asmobile devices. The processes and logic flows can be performed by one ormore programmable processors and by one or more programmable logiccircuitry. General and special purpose computing devices and storagedevices can be interconnected through communication networks.

Some implementations include electronic components, such asmicroprocessors, storage and memory that store computer programinstructions in a machine-readable or computer-readable medium(alternatively referred to as computer-readable storage media,machine-readable media, or machine-readable storage media). Someexamples of such computer-readable media include RAM, ROM, read-onlycompact discs (CD-ROM), recordable compact discs (CD-R), rewritablecompact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM,dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g.,DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SDcards, micro-SD cards, etc.), magnetic and/or solid state hard drives,read-only and recordable Blu-Ray® discs, ultra density optical discs,any other optical or magnetic media, and floppy disks. Thecomputer-readable media can store a computer program that is executableby at least one processing unit and includes sets of instructions forperforming various operations. Examples of computer programs or computercode include machine code, such as is produced by a compiler, and filesincluding higher-level code that are executed by a computer, anelectronic component, or a microprocessor using an interpreter.

While the above discussion primarily refers to microprocessor ormulti-core processors that execute software, some implementations areperformed by one or more integrated circuits, such as applicationspecific integrated circuits (ASICs) or field programmable gate arrays(FPGAs). In some implementations, such integrated circuits executeinstructions that are stored on the circuit itself.

As used in this specification and any claims of this application, theterms “computer”, “server”, “processor”, and “memory” all refer toelectronic or other technological devices. These terms exclude people orgroups of people. For the purposes of the specification, the termsdisplay or displaying means displaying on an electronic device. As usedin this specification and any claims of this application, the terms“computer readable medium” and “computer readable media” are entirelyrestricted to tangible, physical objects that store data in a form thatis readable by a computer. These terms exclude any wireless signals,wired download signals, and any other ephemeral signals.

To provide for interaction with a user, implementations of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying data to the user and a keyboardand a pointing device, e.g., a mouse or a trackball, by which the usercan provide input to the computer. Other kinds of devices can be used toprovide for interaction with a user as well; for example, feedbackprovided to the user can be any form of sensory feedback, e.g., visualfeedback, auditory feedback, or tactile feedback; and input from theuser can be received in any form, including acoustic, speech, or tactileinput. In addition, a computer can interact with a user by sendingdocuments to and receiving documents from a device that is used by theuser; for example, by sending web pages to a web browser on a user'sclient device in response to requests received from the web browser.

Embodiments of the subject matter described in this specification can beimplemented in a computing system that includes a back end component,e.g., as a data server, or that includes a middleware component, e.g.,an application server, or that includes a front end component, e.g., aclient computer having a graphical user interface or a Web browserthrough which a user can interact with an implementation of the subjectmatter described in this specification, or any combination of one ormore such back end, middleware, or front end components. The componentsof the system can be interconnected by any form or medium of digitaldata communication, e.g., a communication network. Examples ofcommunication networks include a local area network (“LAN”) and a widearea network (“WAN”), an inter-network (e.g., the Internet), andpeer-to-peer networks (e.g., ad hoc peer-to-peer networks).

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other. In someembodiments, a server transmits data (e.g., an HTML page) to a clientdevice (e.g., for purposes of displaying data to and receiving userinput from a user interacting with the client device). Data generated atthe client device (e.g., a result of the user interaction) can bereceived from the client device at the server.

It is understood that any specific order or hierarchy of steps in theprocesses disclosed is an illustration of exemplary approaches. Basedupon design preferences, it is understood that the specific order orhierarchy of steps in the processes may be rearranged, or that someillustrated steps may not be performed. Some of the steps may beperformed simultaneously. For example, in certain circumstances,multitasking and parallel processing may be advantageous. Moreover, theseparation of various system components in the embodiments describedabove should not be understood as requiring such separation in allembodiments, and it should be understood that the described programcomponents and systems can generally be integrated together in a singlesoftware product or packaged into multiple software products.

The previous description is provided to enable any person skilled in theart to practice the various aspects described herein. Variousmodifications to these aspects will be readily apparent to those skilledin the art, and the generic principles defined herein may be applied toother aspects. Thus, the claims are not intended to be limited to theaspects shown herein, but are to be accorded the full scope consistentwith the language claims, wherein reference to an element in thesingular is not intended to mean “one and only one” unless specificallyso stated, but rather “one or more.” Unless specifically statedotherwise, the term “some” refers to one or more. Pronouns in themasculine (e.g., his) include the feminine and neuter gender (e.g., herand its) and vice versa. Headings and subheadings, if any, are used forconvenience only and do not limit the subject disclosure.

A phrase such as an “aspect” does not imply that such aspect isessential to the subject technology or that such aspect applies to allconfigurations of the subject technology. A disclosure relating to anaspect may apply to all configurations, or one or more configurations. Aphrase such as an aspect may refer to one or more aspects and viceversa. A phrase such as a “configuration” does not imply that suchconfiguration is essential to the subject technology or that suchconfiguration applies to all configurations of the subject technology. Adisclosure relating to a configuration may apply to all configurations,or one or more configurations. A phrase such as a configuration mayrefer to one or more configurations and vice versa.

The word “exemplary” is used herein to mean “serving as an example orillustration.” Any aspect or design described herein as “exemplary” isnot necessarily to be construed as preferred or advantageous over otheraspects or designs.

All structural and functional equivalents to the elements of the variousaspects described throughout this disclosure that are known or latercome to be known to those of ordinary skill in the art are expresslyincorporated herein by reference and are intended to be encompassed bythe claims. Moreover, nothing disclosed herein is intended to bededicated to the public regardless of whether such disclosure isexplicitly recited in the claims.

1. A method for providing a user with access to an item, the methodcomprising: receiving an indication of a search request from a user at acomputing device, the search request including one or more searchcriteria; identifying one or more items maintained at one or moresources accessible by the user at the computing device meeting thesearch criteria, wherein at least one identified item is not locallyavailable; determining an application associated with each of the one ormore items, wherein an application is associated with an item when theapplication facilitates access to the item; generating an instance ofeach of the one or more items, the instance of the item facilitatingdirect user interaction with the item, wherein the user is able tointeract with the item directly from the instance of the item; andproviding the instance of each of the one or more items for display tothe user at the computing device in response to the search request,wherein the item or the application associated with the item is providedfor downloading when the item is not locally available.
 2. The method ofclaim 1, wherein a first item of the one or more items comprises one ormore of an uninstalled application not yet installed at the computingdevice or data accessible through an uninstalled application not yetinstalled at the computing device.
 3. The method of claim 2, wherein theapplication associated with the first item comprises an applicationstore maintaining one or more third party applications available forinstalling at the user computer including the uninstalled application.4. The method of claim 3, wherein generating an instance of the firstitem comprises accessing the uninstalled application within theapplication store, and installing the uninstalled application, such thatthe user is able to interact with the first item through the instance ofthe first item.
 5. The method of claim 3, wherein generating an instanceof the first item comprises providing a link for display to the useralong with the instance of the item such that the user is able toinstall the uninstalled application directly through the link withouthaving to be redirected to the application store.
 6. The method of claim5, further comprising: receiving a selection from the user to installthe uninstalled application; installing the application and enabling theuser to directly interact with the first item.
 7. The method of claim 1,wherein the one or more items comprise one or more of one or moreapplications or one or more data available through one or moreapplications.
 8. The method of claim 1, wherein the one or more sourcesaccessible by the user comprise one or more of one or more applicationslocally installed at the computing device of the user.
 9. The method ofclaim 1, wherein the application associated with each of the one or moreitems comprises one of an application locally stored at the computingdevice or an application not yet locally stored at the computing devicebut accessible for installation at the computing device through a secondapplication locally stored at the computing device.
 10. The method ofclaim 1, further comprising: providing an application icon correspondingto the application associated with the item to the user, wherein theuser is able to select the application icon to be redirected to theapplication to further interact with the item.
 11. The method of claim1, further comprising: accessing each of the one or more items at thedetermined application associated with the item, and retrieving the itemfrom the application.
 12. A system for facilitating an applicationlauncher providing direct access to one or more items, the systemcomprising: one or more processors; and a machine-readable mediumcomprising instructions stored therein, which when executed by theprocessors, cause the processors to perform operations comprising:receiving one or more search criteria provided by a user at a computingdevice; identifying one or more items maintained at one or more sourcesaccessible by the user at the computing device meeting the one or moresearch criteria, wherein at least one identified item is not locallyavailable; generating an instance of each of the one or more items, theinstance of the item facilitating direct user interaction with the item;and providing the instance of each of the one or more items for displayto the user in response to the search request, wherein the item or theapplication associated with the item is downloaded when the item is notlocally available, and wherein the user is able to interact with theitem directly from the instance of the item being displayed withoutbeing redirected to the application associated with the item.
 13. Thesystem of claim 12, the operations further comprising: accessing each ofthe one or more items at an application associated with each of the oneor more items, wherein an application is associated with an item whenthe application facilitates access to the item.
 14. The system of claim12, wherein providing the one or more items for display comprises:displaying one or more of the instance of each of the one or more itemsand an application icon representing the application associated witheach of the one or more items to the user in a graphical user interface.15. The system of claim 12, wherein providing the one or more items fordisplay comprises: displaying a link for installing at least oneapplication corresponding to at least one of the one or more items orproviding access to the at least one of the one or more items, where theat least one application is not locally installed at the computingdevice.
 16. The system of claim 15, the operations further comprising:receiving a selection from the user to install the at least oneapplication through the link; and installing the application andenabling the user to directly interact with the at least one itemthrough the displayed instance of the at least one item.
 17. Amachine-readable medium comprising instructions stored therein, whichwhen executed by a machine, cause the machine to perform operationscomprising: receiving one or more search criteria provided by a user ata computing device; identifying one or more items accessible through oneor more applications accessible by the user at the computing devicemeeting the one or more search criteria, wherein at least one identifieditem is not locally available; identifying an application associatedwith each of the one or more items; generating an instance of each ofthe one or more items, the instance of the item facilitating direct userinteraction with the item; and providing the instance of each of the oneor more items for display to the user in response to the search request,wherein the item or the application associated with the item isdownloaded when the item is not locally available, and wherein the useris able to interact with the item directly from the instance of the itembeing displayed without being redirected to the application associatedwith the item.
 18. The machine-readable medium of claim 17, theoperations further comprising: accessing each of the one or more itemsat the application associated with each of the one or more items,wherein an application is associated with an item when the applicationfacilitates access to the item and retrieving the item from theapplication.
 19. The machine-readable medium of claim 17, wherein theone or more sources accessible by the user comprise one or more of oneor more applications locally installed at the computing device of theuser.
 20. The machine-readable medium of claim 17, wherein theapplication associated with each of the one or more items comprises oneof an application locally stored at the computing device or anapplication not yet locally stored at the computing device butaccessible for installation at the computing device through a secondapplication locally stored at the computing device.